#pragma once

#include "lg.h"

typedef struct LGWindowBackend LGWindowBackend;
typedef struct LGTextureBackend LGTextureBackend;
typedef struct LGShaderBackend LGShaderBackend;
typedef struct LGDrawBackend LGDrawBackend;
typedef struct LGCanvasBackend LGCanvasBackend;
typedef struct LGVertexBackend LGVertexBackend;
typedef struct LGStdBackend LGStdBackend;
struct LGBackend {
    int (*init)(LGConfig* config);
    int (*dispatch)();
    LGWindowBackend* window;
    LGTextureBackend* texture;
    LGShaderBackend* shader;
    LGDrawBackend* draw;
    LGCanvasBackend* canvas;
    LGVertexBackend* vertex;
    LGStdBackend* std;
};

